

matrix3x3 multipliziere2Matrizen (matrix3x3 matrix1,matrix3x3 matrix2) {
	matrix3x3 matrix_ergebnis ;

	matrix_ergebnis.m11 = matrix1.m11 * matrix2.m11 + matrix1.m12 * matrix2.m21 + matrix1.m13 * matrix2.m31 ;
	matrix_ergebnis.m12 = matrix1.m11 * matrix2.m12 + matrix1.m12 * matrix2.m22 + matrix1.m13 * matrix2.m32 ;
	matrix_ergebnis.m13 = matrix1.m11 * matrix2.m13 + matrix1.m12 * matrix2.m23 + matrix1.m13 * matrix2.m33 ;

	matrix_ergebnis.m21 = matrix1.m21 * matrix2.m11 + matrix1.m22 * matrix2.m21 + matrix1.m23 * matrix2.m31 ;
	matrix_ergebnis.m22 = matrix1.m21 * matrix2.m12 + matrix1.m22 * matrix2.m22 + matrix1.m23 * matrix2.m32 ;
	matrix_ergebnis.m23 = matrix1.m21 * matrix2.m13 + matrix1.m22 * matrix2.m23 + matrix1.m23 * matrix2.m33 ;

	matrix_ergebnis.m31 = matrix1.m31 * matrix2.m11 + matrix1.m32 * matrix2.m21 + matrix1.m33 * matrix2.m31 ;
	matrix_ergebnis.m32 = matrix1.m31 * matrix2.m12 + matrix1.m32 * matrix2.m22 + matrix1.m33 * matrix2.m32 ;
	matrix_ergebnis.m33 = matrix1.m31 * matrix2.m13 + matrix1.m32 * matrix2.m23 + matrix1.m33 * matrix2.m33 ;

return matrix_ergebnis;

}

vektor3d multipliziereMitVektor(matrix3x3 matrix,vektor3d v1) {
vektor3d vektor_ergebnis ;
	vektor_ergebnis.x = matrix.m11 * v1.x + matrix.m12 * v1.y + matrix.m13 * v1.z ;
	vektor_ergebnis.y = matrix.m21 * v1.x + matrix.m22 * v1.y + matrix.m23 * v1.z ;
	vektor_ergebnis.z = matrix.m31 * v1.x + matrix.m32 * v1.y + matrix.m33 * v1.z ;

	return vektor_ergebnis;
}

matrix3x3 addiere2Matrizen (matrix3x3 matrix1,matrix3x3 matrix2) {
	matrix3x3 matrix_ergebnis ;

	matrix_ergebnis.m11 = matrix1.m11 + matrix2.m11  ;
	matrix_ergebnis.m12 = matrix1.m12 + matrix2.m12  ;
	matrix_ergebnis.m13 = matrix1.m13 + matrix2.m13  ;

	matrix_ergebnis.m21 = matrix1.m21 + matrix2.m21  ;
	matrix_ergebnis.m22 = matrix1.m22 + matrix2.m22  ;
	matrix_ergebnis.m23 = matrix1.m23 + matrix2.m23  ;

	matrix_ergebnis.m31 = matrix1.m31 + matrix2.m31  ;
	matrix_ergebnis.m32 = matrix1.m32 + matrix2.m32  ;
	matrix_ergebnis.m33 = matrix1.m33 + matrix2.m33  ;

return matrix_ergebnis;
}

matrix3x3 subtrahiere2Matrizen (matrix3x3 matrix1,matrix3x3 matrix2) {
	matrix3x3 matrix_ergebnis ;

	matrix_ergebnis.m11 = matrix1.m11 - matrix2.m11  ;
	matrix_ergebnis.m12 = matrix1.m12 - matrix2.m12  ;
	matrix_ergebnis.m13 = matrix1.m13 - matrix2.m13  ;

	matrix_ergebnis.m21 = matrix1.m21 - matrix2.m21  ;
	matrix_ergebnis.m22 = matrix1.m22 - matrix2.m22  ;
	matrix_ergebnis.m23 = matrix1.m23 - matrix2.m23  ;

	matrix_ergebnis.m31 = matrix1.m31 - matrix2.m31  ;
	matrix_ergebnis.m32 = matrix1.m32 - matrix2.m32  ;
	matrix_ergebnis.m33 = matrix1.m33 - matrix2.m33  ;

return matrix_ergebnis;
}

void printMatrix(matrix3x3 m){
printf("\n");
printf("%4.8f  ,  %4.8f  ,  %4.8f\n",m.m11, m.m12, m.m13);
printf("%4.8f  ,  %4.8f  ,  %4.8f\n",m.m21, m.m22, m.m23);
printf("%4.8f  ,  %4.8f  ,  %4.8f\n",m.m31, m.m32, m.m33);
}
